In recent years, business intelligence software has become increasingly utilized by large business enterprises and other organizations. Business intelligence provides current and historical views of business operations by analyzing internal, structured data and business processes of the organization. It is often used to create future models and predictions in order to support better business decision making. As such, business intelligence tools can lead to decreased costs and increased efficiency, productivity and profit margins for many companies.
Business intelligence is usually implemented as software and/or hardware tools that are used to collect and analyze data and to transform the raw data into meaningful and useful information used to enable more effective strategic, tactical, and operational insights and decision-making. As such, a typical business intelligence server relies on data that may reside in a variety of places, including but not limited to relational databases, online analytical processing (OLAP) tools, repositories and content management systems, application servers, as well as a number of other sources.
In a typical business intelligence (BI) server, data is collected from all (or some) of these data sources and placed into a (virtual or physical) data warehouse or data mart, where it can then be modeled and analyzed before being presented to the user. For example, one approach is to implement a physical layer within the business intelligence server, where data is modeled as a consolidated table that mirrors objects in the data source layer. An application developer can assemble these compound objects by hand, using a subset of the entities relevant to the domain; the synthesized objects can subsequently be imported into the business intelligence server's metadata and decomposed into dimensions and facts.
However, a number limitations and potential areas of improvement still exist in the field of modeling data within business intelligence servers. For example, it is frequently useful to represent hierarchical relationships among data. In the context of business intelligence, a hierarchy is a set of top-down relationships between certain attributes in a dimension. Many hierarchical relationships can be represented by level-based hierarchies. An example of a level-based hierarchy can be seen in a time dimension, where days roll up into weeks, months roll up into quarters, quarters into years and so on.
In certain cases, however, hierarchies do not have well defined levels. As an illustration, an organization may not be level based. Members within an organization may attributes such as “Title” however, these attributes do not translate well into levels. For example, (a) vice presidents (VPs) may report to other VPs and (b) different VPs can be at different depths from the tree. In addition, some hierarchies do not have values for certain levels. Moreover, some hierarchies exist where all the leaves do not have the same depth. It can be advantageous and desirable to represent all of these hierarchical relationships within the data model of the BI server.